﻿using System;

namespace Microsoft.International.Formatters
{

    /// <summary>
    /// Formatter mother class
    /// </summary>
    internal abstract class EuropeFormatter
    {

        /// <summary>Protected constructor for the class EuropeFormatter</summary>
        protected EuropeFormatter() { }

        /// <summary>
        /// Check if the value is out of the translation scope.
        /// </summary>
        /// <param name="num">Number to check</param>
        /// <returns>Returns true if the value is out of range; false else.</returns>
        /// <remarks>By default, the range of value is all the Int32 scope.</remarks>
        protected internal virtual Boolean CheckOutOfRange(Double num)
        {
            return (num > Int32.MaxValue || num < Int32.MinValue);
        }

        /// <summary>
        /// Returns the Decimal value to String.
        /// </summary>
        /// <param name="num">Value to translate.</param>
        /// <returns>Returns the specified Decimal value to String.</returns>
        /// <remarks>Abstract method, must be implemented.</remarks>
        internal abstract String ConvertToLocalizedText(Decimal num);

    }
}